package ModelLayer;

import java.util.ArrayList;
/**
 * 
 * @author (GP3 Project Solutions) 
 * @version (05-06-2011 JSM: Oprettelse af klassen)
 */
public class LeverandoerRegister
{
    // instans variabler
    private ArrayList<Leverandoer> leverandoerer;
    private static LeverandoerRegister instance = null;

    /**
     * Konstruktør for objekter af klassen LeverandoerRegister
     */
    private LeverandoerRegister()
    {
        // initialisering af instans variabler
        leverandoerer = new ArrayList<Leverandoer>();   
    }
    
    /**
     * Metode der tilføjer leverandør til arrayliste
     * @param leverandoer Objekt af typer Leverandoer 
     */
    public void tilfoejLeverandoer(Leverandoer leverandoer)
    {
        leverandoerer.add(leverandoer);
    }

    /**
     * Metoden finder en leverandør ud fra given leverandørid
     * @param leverandoerId Leverandørens id
     * @return Leverandoer Den fundne leverandør
     */
    public Leverandoer findLeverandoer(int leverandoerId)
    {
        int index = 0;
        boolean found = false;
        Leverandoer leverandoer = null;
        
        while(index < leverandoerer.size())
        {
            if(leverandoerer.get(index).hentId() == leverandoerId && !found)
            {
                leverandoer = leverandoerer.get(index);
                found = true;
            }
            index++;
        }
        return leverandoer;
    }
    
    /**
     * Metoden opdaterer en given leverandørs data
     * @param id Leverandørens id
     * @param navn Leverandørens navn
     * @param adresse Leverandørens adresse
     * @param tlf Leverandørens telefonnummer
     * @param email Leverandørens email
     */
    public void opdaterLeverandoer(int id, String navn, String adresse, int tlf, String email)
    {
        Leverandoer leverandoer = findLeverandoer(id);
        leverandoer.angivNavn(navn);
        leverandoer.angivAdresse(adresse);
        leverandoer.angivTlf(tlf);
        leverandoer.angivEmail(email);
    }
    
    /**
     * Metoden returnerer et String objekt med leverandørdata
     * @return String Leverandørdata
     */
    public String udskrivAlleLeverandoer()
    {
        String info = "";
        for(Leverandoer leverandoer : leverandoerer)
        {
            info += leverandoer.toString();
        }
        return info;
    }
    
    /**
     * Opretter en instans af klassen LeverandoerRegister
     * @return Returnerer en instans af LeverandoerRegister
     */
    public static LeverandoerRegister getInstance()
    {
        if(instance == null)
        {
            instance = new LeverandoerRegister();
        }
        return instance;
    }
}
